package com.yusvn.scm.admin.auth;

import com.jfinal.kit.Kv;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;

/**
 * 管理后台授权业务
 * @author liugz
 *
 */
public class AdminAuthService {

	/**
	 * 是否为超级管理员，role.id 值为 1 的为超级管理员
	 */
	public boolean isSuperAdmin(int userId) {
		Integer ret = Db.template("admin.auth.isSuperAdmin", userId).queryInt();
		return ret != null;
	}

	/**
	 * 当前账号是否拥有某些角色
	 */
	public boolean hasRole(int userId, String[] roleNameArray) {
		if (roleNameArray == null || roleNameArray.length == 0) {
			return false;
		}

		Kv data = Kv.by("userId", userId).set("roleNameArray", roleNameArray);
		Integer ret = Db.template("admin.auth.hasRole", data).queryInt();
		return ret != null;
	}

	/**
	 * 是否拥有具体某个权限
	 */
	public boolean hasPermission(int userId, String actionKey) {
		if (StrKit.isBlank(actionKey)) {
			return false;
		}

		Integer ret = Db.template("admin.auth.hasPermission", actionKey, userId).queryInt();
		return ret != null;
	}
	
}
